home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 7 / Amiga Format AFCD07 (Dec 1996, Issue 91).iso / serious / shareware / programming / emacs-complete / fsf / emacs / src / .gdbinit < prev    next >
Text File  |  1994-07-23  |  4KB  |  182 lines

  1. # Set up something to print out s-expressions.
  2. define pr
  3. set debug_print ($)
  4. echo \n
  5. end
  6. document pr
  7. Print the emacs s-expression which is $.
  8. Works only when an inferior emacs is executing.
  9. end
  10.  
  11. # Set this to the same thing as the DATA_SEG_BITS macro in your
  12. # machine-description files.
  13. set $data_seg_bits = 0
  14.  
  15. define mips
  16. set $data_seg_bits = 0x10000000
  17. end
  18. document mips
  19. Set up the xfoo macros to deal with the MIPS processor.
  20. Specifically, this sets $data_seg_bits to the right thing.
  21. end
  22.  
  23. define xtype
  24. output (enum Lisp_Type) (($ >> 24) & 0x7f)
  25. echo \n
  26. end
  27. document xtype
  28. Print the type of $, assuming it is an Emacs Lisp value.
  29. end
  30.  
  31. define xint
  32. print (($ & 0x00ffffff) << 8) >> 8
  33. end
  34. document xint
  35. Print $, assuming it is an Emacs Lisp integer.  This gets the sign right.
  36. end
  37.  
  38. define xptr
  39. print (void *) (($ & 0x00ffffff) | $data_seg_bits)
  40. end
  41. document xptr
  42. Print the pointer portion of $, assuming it is an Emacs Lisp value.
  43. end
  44.  
  45. define xwindow
  46. print (struct window *) (($ & 0x00ffffff) | $data_seg_bits)
  47. printf "%dx%d+%d+%d\n", $->width, $->height, $->left, $->top
  48. end
  49. document xwindow
  50. Print $ as a window pointer, assuming it is an Emacs Lisp window value.
  51. Print the window's position as "WIDTHxHEIGHT+LEFT+TOP".
  52. end
  53.  
  54. define xmarker
  55. print (struct Lisp_Marker *) (($ & 0x00ffffff) | $data_seg_bits)
  56. end
  57. document xmarker
  58. Print $ as a marker pointer, assuming it is an Emacs Lisp marker value.
  59. end
  60.  
  61. define xbuffer
  62. print (struct buffer *) (($ & 0x00ffffff) | $data_seg_bits)
  63. output &((struct Lisp_String *) ((($->name) & 0x00ffffff) | $data_seg_bits))->data
  64. echo \n
  65. end
  66. document xbuffer
  67. Set $ as a buffer pointer, assuming it is an Emacs Lisp buffer value.
  68. Print the name of the buffer.
  69. end
  70.  
  71. define xsymbol
  72. print (struct Lisp_Symbol *) ((((int) $) & 0x00ffffff) | $data_seg_bits)
  73. output &$->name->data
  74. echo \n
  75. end
  76. document xsymbol
  77. Print the name and address of the symbol $.
  78. This command assumes that $ is an Emacs Lisp symbol value.
  79. end
  80.  
  81. define xstring
  82. print (struct Lisp_String *) (($ & 0x00ffffff) | $data_seg_bits)
  83. output ($->size > 1000) ? 0 : ($->data[0])@($->size)
  84. echo \n
  85. end
  86. document xstring
  87. Print the contents and address of the string $.
  88. This command assumes that $ is an Emacs Lisp string value.
  89. end
  90.  
  91. define xvector
  92. print (struct Lisp_Vector *) (($ & 0x00ffffff) | $data_seg_bits)
  93. output ($->size > 50) ? 0 : ($->contents[0])@($->size)
  94. echo \n
  95. end
  96. document xvector
  97. Print the contents and address of the vector $.
  98. This command assumes that $ is an Emacs Lisp vector value.
  99. end
  100.  
  101. define xframe
  102. print (struct frame *) (($ & 0x00ffffff) | $data_seg_bits)
  103. end
  104. document xframe
  105. Print $ as a frame pointer, assuming it is an Emacs Lisp frame value.
  106. end
  107.  
  108. define xcons
  109. print (struct Lisp_Cons *) (($ & 0x00ffffff) | $data_seg_bits)
  110. output *$
  111. echo \n
  112. end
  113. document xcons
  114. Print the contents of $, assuming it is an Emacs Lisp cons.
  115. end
  116.  
  117. define xcar
  118. print ((($ >> 24) & 0x7f) == Lisp_Cons ? ((struct Lisp_Cons *) (($ & 0x00ffffff) | $data_seg_bits))->car : 0)
  119. end
  120. document xcar
  121. Print the car of $, assuming it is an Emacs Lisp pair.
  122. end
  123.  
  124. define xcdr
  125. print ((($ >> 24) & 0x7f) == Lisp_Cons ? ((struct Lisp_Cons *) (($ & 0x00ffffff) | $data_seg_bits))->cdr : 0)
  126. end
  127. document xcdr
  128. Print the cdr of $, assuming it is an Emacs Lisp pair.
  129. end
  130.  
  131. define xsubr
  132. print (struct Lisp_Subr *) (($ & 0x00ffffff) | $data_seg_bits)
  133. output *$
  134. echo \n
  135. end
  136. document xsubr
  137. Print the address of the subr which the Lisp_Object $ points to.
  138. end
  139.  
  140. define xprocess
  141. print (struct Lisp_Process *) (($ & 0x00ffffff) | $data_seg_bits)
  142. output *$
  143. echo \n
  144. end
  145. document xprocess
  146. Print the address of the struct Lisp_process which the Lisp_Object $ points to.
  147. end
  148.  
  149. define xfloat
  150. print ((struct Lisp_Float *) (($ & 0x00ffffff) | $data_seg_bits))->data
  151. end
  152. document xfloat
  153. Print $ assuming it is a lisp floating-point number.
  154. end
  155.  
  156. define xscrollbar
  157. print (struct scrollbar *) (($ & 0x00ffffff) | $data_seg_bits)
  158. output *$
  159. echo \n
  160. end
  161. document xscrollbar
  162. Print $ as a scrollbar pointer.
  163. end
  164.  
  165. set print pretty on
  166. set print sevenbit-strings
  167.  
  168. show environment DISPLAY
  169. show environment TERM
  170. set args -geometry 80x40+0+0
  171.  
  172. # Don't let abort actually run, as it will make
  173. # stdio stop working and therefore the `pr' command above as well.
  174. break abort
  175.  
  176. # If we are running in synchronous mode, we want a chance to look around
  177. # before Emacs exits.  Perhaps we should put the break somewhere else
  178. # instead...
  179. break x_error_quitter
  180.  
  181.  
  182.